{T}

网站割接必须掌握的 N 个检查项及命令

0. 引言

"割接"最初指网络架构的升级或变更切换,在网站场景中指对网站服务环境的切换与变更——升级 Nginx、更换网关、迁移数据库、切换机房,都属于割接。割接是风险最高的运维操作:任何一环检查不到位,都可能演变成线上事故。本章给出割接检查的完整框架:先看网站服务架构与割接分类,再按"上层业务"与"数据层"两大类梳理检查项及对应命令。


1. 网站服务架构与割接分类

1.1 网站的层次结构

图表渲染中…

其中任何一层发生变化,都可能触发一次割接,并需要对应的检查项。

1.2 割接的两种分类方式

分类维度类型说明示例
结构同构割接主体结构不变,例行升级Nginx 版本升级
结构异构割接主体结构改变入口网关 Nginx 换成 Apache
影响面局部割接只影响一小部分单模块配置调整
影响面全局割接影响整体功能与用户体验数据库整体迁移

割接检查的范围往往比操作本身大得多——操作只动一处,检查要覆盖整条链路。


2. 上层业务检查项

上层业务检查贴近真实用户视角,覆盖入口层、逻辑层及 DNS/CDN 等公共组件。

2.1 DNS 域名解析

检查域名解析的 IP 是否正确、解析内容与配置是否匹配:

命令用途
ping验证域名可达性与延迟
nslookup查询解析记录、指定 DNS 服务器
dig专业解析工具,dig +@DNS服务IP 指定服务器,dig +trace 模拟迭代+递归全过程

解析异常常见三种原因:DNS 缓存失效周期、本地 DNS 配置错误、DNS 劫持——此时需指定可信 DNS 服务器逐层验证。

2.2 TCP 服务建连

工具用途
ping / fpingICMP 探测;fping 支持批量指定主机范围
tcpping用 TCP 协议 ping(服务端关闭 ICMP 时替代)
telnet IP 端口客户端验证 TCP 连接是否建立
netstat / ss / lsof服务端查看监听端口、连接状态、句柄占用
tcpdump抓包分析网络包
nc客户端/服务端两用,可模拟端口监听进程

2.3 网站入口应用

  • 页面与接口:浏览器开发者工具逐个检查元素下载状态;无浏览器时用 curl -v -L 查看完整请求过程与响应头;
  • 服务端进程top / ps 分析进程资源占用,应用专属工具(如 jmap)检查 JVM 状态;
  • 业务日志:日志是判断入口应用是否正常的重要依据。

2.4 监控系统

割接后必须查看监控:不仅要确认业务正常,还要确认整体指标平稳。开源方案推荐 Zabbix 与 Prometheus;大型网站还会用第三方检测工具(博睿、听云等)从指定地域探测服务。


3. 割接演示:例行发布后的检查流程

  1. 发布代码 → 检查域名解析:ping 新域名,确认返回地址与延迟符合预期;
  2. 解析异常 → dig +@8.8.8.8nslookup 指定 DNS 服务验证,排除缓存/配置/劫持;
  3. 浏览器开发者工具刷新页面,检查每个元素的下载状态与返回值;
  4. 元素异常 → telnet 域名 80 验证 TCP 连通,curl -v -L 检查应用层响应头与 body;
  5. 登录服务器:top / ps 检查进程与资源;
  6. 仍异常 → 打开业务日志分析。

4. 数据层检查项(以 MySQL 为例)

4.1 数据一致性

工具用途
CHECKSUM TABLEMySQL 内核对表数据一致性校验
mysqldiffMySQL Utilities,检查表结构是否一致
mysqldbcompare检查不同数据库之间的一致性
pt-table-checksumPercona 工具集,在线检查主从数据一致性(从主库核对从库)

4.2 运行状态

sql
SHOW FULL PROCESSLIST;      -- SQL 执行状态,完整展示 SQL 语句
SHOW SLAVE STATUS\G         -- 主从同步状态与延迟
SHOW MASTER STATUS\G        -- 主库当前 binlog 位置

4.3 配置对比

  • 对比 my.cnf 配置文件的差异是否合理;
  • SHOW VARIABLES\G 查看系统变量、SHOW STATUS\G 查看状态变量,两侧对比分析。

4.4 日志与监控

  • error log:判断数据库运行错误;
  • 慢查询日志:关注对外服务的查询质量;
  • 将关键指标接入监控系统,日常通过监控判断运行状态。

5. 小结

  • 架构视角:入口层、逻辑层、数据层 + DNS/CDN 公共组件,任何一层变动都是割接;
  • 上层检查:DNS(ping/nslookup/dig)→ TCP 建连(telnet/netstat/tcpdump/nc)→ 入口应用(curl/浏览器/进程/日志)→ 监控;
  • 数据层检查:一致性(checksum 系列)、运行状态(processlist/主从状态)、配置对比、日志与监控;
  • 检查顺序:自用户视角向下钻取,先入口后数据,先表象后日志,是割接检查的不变主线。

下一章讲解典型系统故障:快速排错操作系统问题进程——僵尸进程、不可中断睡眠与资源耗尽的定位手段。